Method and system for determining a singularity free momentum path

ABSTRACT

A method for avoiding singularities in the movement of a set of collinear CMGs in an array of CMGs in a spacecraft is provided. First, a command to adjust an orientation of the spacecraft is received. Then, the momentum needed from the set of collinear CMGs is determined. A dynamic control that determines a momentum path and avoids singularities by rotating the singularities out of the momentum path is used and a required gimbal movement for each of the CMGs in the set of collinear CMGs from the momentum path is calculated.

FIELD OF THE INVENTION

This invention relates to the field of spacecraft vehicle control and, more specifically, to a method and system for determining a singularity free momentum path.

BACKGROUND OF THE INVENTION

In order to control the attitude of a spacecraft, various rotating inertia memberscan be used. One such inertia member is a control moment gyroscope (CMG). A CMG typically comprises a flywheel with a fixed or variable spin rate mounted to a gimbal assembly. The spin axis of the CMG can be tilted by moving the CMG using the gimbal assembly. This motion produces a gyroscopic torque orthogonal to the spin axis and gimbal axis.

To achieve full attitude control of a spacecraft, a CMG array, including a minimum of three CMGs may be arranged such that each CMG in the CMG array imparts torque about a linearly independent axis. Typically, additional CMGs are provided for redundancy purposes and to assist with singularity avoidance. A singularity occurs when the momentum vectors of the CMGs line up such that one or more components of the requested torque can not be provided.

Several different techniques have been developed to avoid singularities. In one method it is first noted that a Jacobian A maps the CMG gimbal rates into a three dimensional array torque: Aω=τ  (1) where A is a 3×n Jacobian matrix, ω is a n×1 array of gimbal rates for the n gimbals, and τ is a 3×1 array of torque components to be imparted to the spacecraft. From the above equation and with a known torque command, τ, the individual gimbal rates for each CMG can be calculated. Using the known Moore-Penrose pseudoinverse to invert the Jacobian matrix, a set of possible gimbal rates is: ω=A ^(T)(AA ^(T))⁻¹τ.  (2)

As discussed previously, inherent in the use of CMGs is the possibility that the CMGs' momentum vectors may line up in such a way that a singularity condition is reached. Mathematically, singularities can occur when the eigenvalues of AA^(T) approach zero, causing (AA^(T))⁻¹ to approach infinity. Equivalently, singularities occur when the determinant of the matrix AA^(T) is equal to zero (expressed algebraically as det (AA^(T))=0). In the case of a 3×n matrix A, this is equivalent to the rank of the matrix AA^(T) being two or less.

Different approaches have been devised to avoid singularities in the movement of CMGs. In one approach, to ensure that (AA^(T))⁻¹ never is zero, (AA^(T))⁻¹ is replaced by (AA^(T)+εI)⁻¹ where I is the identity matrix and ε is a small number. The use of a positive ε ensures that det (AA^(T)+εI)⁻¹ never becomes 0.

While useful in some instances, a drawback to this approach is that this approach changes the gimbal rate calculation. In the case of the Jacobian A, the use of the pseudoinverse means that gimbal rates are no longer exactly mapped into the commanded torques because of the error ε introduces. This resulting error steers the spacecraft in the wrong direction and can introduce significant, undesired torque, especially near the singularity.

A second approach is to limit the CMG array's momentum output to a smaller area within a momentum envelope. The momentum envelope is the momentum provided in all possible combinations of the CMGs in the CMG array. In one exemplary embodiment, depending on the CMG arrangement, by operating within one-third or less of the total momentum envelopes, singularities can be avoided. However, this approach wastes potential torque and results in systems that are much larger and heavier than needed.

In view of the foregoing, it is desirable to provide a method for determining a singularity free momentum path that addresses one or more of the foregoing deficiencies or other deficiencies not implicitly or expressly described. It is also desirable to provide a system for determining a singularity free momentum path that addresses one or more of the foregoing deficiencies or other deficiencies not implicitly or expressly described. Furthermore, other desirable factors and characteristics of the present invention will become apparent from the subsequent detailed description and the appended claims, taken in conjunction with the accompanying drawings and the foregoing technical field and background.

SUMMARY OF THE INVENTION

In an exemplary embodiment, a method for avoiding singularities in the movement of a set of collinear CMGs in an array of CMGs in a spacecraft is provided. First, a command to adjust an orientation of the spacecraft is received. Then the momentum needed from the set of collinear CMGs is determined. A dynamic control that determines a momentum path and avoids singularities by rotating the singularities out of the momentum path is used and the required gimbal movement for each of the CMGs in the set of collinear CMGs from the momentum path is calculated.

In another exemplary embodiment, a control system of a spacecraft is disclosed. The control system comprises an attitude control system. The attitude control system is operable to receive a command to adjust an orientation of the spacecraft, determine the momentum needed from the set of collinear CMGs and utilize a dynamic control that determines a momentum path and avoids singularities by rotating the singularities out of the momentum path. The control system further comprises a momentum actuator control processor coupled to the attitude control system. The momentum actuator control processor is operable to calculate a required gimbal movement for each of the CMGs in the set of collinear CMGs from the momentum path. A plurality of CMGs are coupled to the momentum actuator. The CMGs are operable to receive commands from the momentum actuator to change the spacecraft orientation.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention will hereinafter be described in conjunction with the following drawing figures, wherein like numerals denote like elements, and:

FIG. 1 is a block diagram illustrating an exemplary CMG control system in accordance with an exemplary embodiment of the present invention;

FIG. 2 illustrates the momentum space of a set of collinear CMGs in accordance with an exemplary embodiment of the present invention;

FIG. 3 illustrates the rotation of a singularity when the momentum path approaches the singularity in accordance with an exemplary embodiment of the present invention;

FIG. 4 illustrates the rotation of a singularity away from a momentum path following a safety ray in accordance with an exemplary embodiment of the present invention; and

FIG. 5 is a flowchart illustrating a method for maneuvering a spacecraft in accordance with an exemplary embodiment of the present invention.

DETAILED DESCRIPTION OF THE DRAWINGS

The following detailed description is merely exemplary in nature and is not intended to limit the invention or the application and uses of the invention. Furthermore, there is no intention to be bound by any expressed or implied theory presented in the preceding technical field, background, brief summary or the following detailed description.

An exemplary control system 100 for implementing the present invention is illustrated in FIG. 1. The components of the control system 100 are known in the art and can be assembled in different ways using different processors, software, controllers, sensors, and the like. Additionally, various computational functionalities that are typically provided by one part of the system can instead be provided by another part. The system 100 as shown in FIG. 1 includes parts that are pertinent to the discussion of the present invention and the system 100 may include other elements or systems that might be provided in a control system and which are well known and not shown in FIG. 1.

The control system 100 includes an attitude control system 102 coupled to a momentum actuator control processor 104. CMGs 106 are coupled the momentum actuator control processor 104. Associated with each CMG 106 are one or more CMG sensors 108 for providing information concerning the state of the CMG 106 to the control system 100. Control system 100, in one embodiment, is mounted on a spacecraft such as an orbiting satellite.

Attitude control system 102 controls the positioning of a spacecraft. The attitude control system 102 receives data concerning a desired spacecraft maneuver and determines an appropriate torque command to complete the desired maneuver. The torque commands can be presented to the momentum actuator control processor 104. The momentum actuator control processor 104, in response to the torque commands, can calculate the gimbal rates necessary to produce the commanded torque. Additionally, the momentum actuator control processor 104 calculates gimbal movement from a momentum path determined by a steering law. The momentum actuator control processor 104, based on these calculations, provides the necessary commands to the CMGs 106 such that the CMG movement produces the commanded torque and, in accordance with the teachings of the present invention, provides the torque while avoiding singularities.

In the present invention, there are multiple gimbal arrays arranged to provide full control over the spacecraft on which they are installed. Each gimbal array, in an exemplary embodiment, comprises a set of collinear CMGs. In one exemplary embodiment, the set includes three collinear CMGs. The momentum of the set of collinear CMGs is restricted to a two-dimensional plane. As seen in FIG. 2, three collinear CMGs can generate a circular momentum space 202 of radius 3. A total momentum vector within the momentum space can be expressed as h={x, y}. The gimbal angles of the three CMGs are given by α, β, and γ, where the zero gimbal angles are all oriented along the x-axis. The x and y components of the momentum vector are given by the following equations: x=cos α+cos β+cos γ y=sin α+sin β+sin γ  (3)

After determining the momentum vector, places where singularities could exist are determined. First, the Jacobian of the transformation is determined. Given:

$\begin{matrix} {{{h\left( {\alpha,\beta,\gamma} \right)} = \begin{bmatrix} {{\cos\;\alpha} + {\cos\;\beta} + {\cos\;\gamma}} \\ {{\sin\;\alpha} + {\sin\;\beta} + {\sin\;\gamma}} \end{bmatrix}},} & (4) \end{matrix}$ the Jacobian can be found by calculating the gradient of the momentum vector:

$\begin{matrix} {{\nabla h} = {\begin{bmatrix} {{- \sin}\;\alpha} & {{- \sin}\;\beta} & {{- \sin}\;\gamma} \\ {\cos\;\alpha} & {\cos\;\beta} & {\cos\;\gamma} \end{bmatrix}.}} & (5) \end{matrix}$ As discussed previously, a singularity exists when det(∇h·∇h^(T))=0 (i.e. when ∇h has rank 1)? Using Eqn. 4, the determinate can be calculated: det(∇h·∇h ^(T))=3−(cos²(α−β)+cos²(β−γ)+cos²(γ−α)).  (6) Eqn. 6 is zero when: 1=±cos(α−β)=±cos(β−γ)=±cos(γ−α).  (7)

There are only four possible solutions to Eqn. 7. If r≧0, and r²=x²+y² then possible singularities occur at:

α − β β − γ γ − α r 0 0 0 3 0 π π 1 π 0 π 1 π π 0 1 Therefore, if either α, β, γ is in a singular configuration, then r=1 or r=3.

The momentum vector h={x, y} can be expressed in polar coordinates {r, φ} as: x=r cos φ y=r sin φ  (8) For r≧0 and r²=x²+y², and for r≠0, φ is characterized by:

$\begin{matrix} {{{\cos\;\varphi} = \frac{x}{r}}{{\sin\;\varphi} = {\frac{y}{r}.}}} & (9) \end{matrix}$

Then, for the gimbal angle α, the relative polar coordinates {r_(α), φ_(α)} can be defined as: x−cos α=r _(α) cos φ_(α) y−sin α=r _(α) sin φ_(α)  (10) Note that r_(α)≧0 is characterized by:

$\begin{matrix} \begin{matrix} {r_{\alpha}^{2} = {\left( {x - {\cos\;\alpha}} \right)^{2} + \left( {y - {\sin\;\alpha}} \right)^{2}}} \\ {= {1 + r^{2} - {2r\mspace{14mu}{{\cos\left( {\alpha - \varphi} \right)}.}}}} \end{matrix} & (11) \end{matrix}$ and for r_(α)≠0, φ_(α) is characterized by:

$\begin{matrix} {{{\cos\;\varphi_{\alpha}} = \frac{x - {\cos\;\alpha}}{r_{\alpha}}}{{\sin\;\varphi_{\alpha}} = {\frac{y - {\sin\;\alpha}}{r_{\alpha}}.}}} & (12) \end{matrix}$

Using the above equations, all solutions to Eqn. 3 can be parameterized. x, y, r, φ can be defined as discussed previously, with 0≦r≦3. Let r_(α)≧0 be as previously defined as r_(α) ²=1+r²−2r cos(α−φ). All solutions α, β, γ to Eqn. 3 are characterized by α such that:

$\begin{matrix} {{\cos\left( {\alpha - \varphi} \right)} \geq {\frac{1}{2}{\left( {r - {3/r}} \right).}}} & (13) \end{matrix}$ and β, γ:

$\begin{matrix} {{{\cos\;\beta} = {{\frac{1}{2}\left( {x - {\cos\;\alpha}} \right)} \mp {\sqrt{\left( {\frac{1}{r_{\alpha}^{2}} - \frac{1}{4}} \right)}\left( {y - {\sin\;\alpha}} \right)}}}{{\sin\;\beta} = {{{\pm \sqrt{\left( {\frac{1}{r_{\alpha}^{2}} - \frac{1}{4}} \right)}}\left( {x - {\cos\;\alpha}} \right)} + {\frac{1}{2}\left( {y - {\sin\;\alpha}} \right)}}}{and}} & (14) \\ {{{\cos\;\gamma} = {{\frac{1}{2}\left( {x - {\cos\;\alpha}} \right)} \pm {\sqrt{\left( {\frac{1}{r_{\alpha}^{2}} - \frac{1}{4}} \right)}\left( {y - {\sin\;\alpha}} \right)}}}{{\sin\;\gamma} = {{{\mp \sqrt{\left( {\frac{1}{r_{\alpha}^{2}} - \frac{1}{4}} \right)}}\left( {x - {\cos\;\alpha}} \right)} + {\frac{1}{2}{\left( {y - {\sin\;\alpha}} \right).}}}}} & (15) \end{matrix}$

Utilizing the above parameterized equations, a fixed control for the collinear CMGs can be determined. A fixed control is a map from the momentum space to the gimbal angles; that is, it is a control scheme for the CMGs that assigns a particular set of gimbal angles to each point in momentum space. Any fixed controller is discontinuous somewhere in the interior of the unit disk of the momentum space.

Thus, a fixed control is a map Γ from the reachable momentum space H={(x, y): √{square root over (x²+y²)}≦3} to the space of gimbal angles, Γ(x, y)={α, β, γ}={α(x, y), β(x, y), γ(x, y)}. A singularity of a fixed control is a point (x, y) where the map is not continuous.

Additionally, a fixed control, Γ, from the reachable momentum space H={(x, y): √{square root over (x²+y²)}≦3} to the space of gimbal angles, has to have a singularity somewhere in the unit disk H₁={(x, y): √{square root over (x²+y²)}≦1}.

Since all fixed controls have singularities within the unit circle, finding a fixed control steering which has a minimal singularity, e.g. only one singularity located on the boundary of U₁ will simplify the derivation of a control law.

Given a simple fixed control Γ_(β) ⁺, which orients the gimbal β along the desired momentum vector, such as β(x, y)=φ(x, y), which chooses one choice of sign, and then which uses simplified versions of the counterparts of Eqns. (13) and (14) to define the remaining two gimbal angles α, γ:

$\begin{matrix} {{{For}\mspace{14mu}{\Gamma_{\beta}^{+}\left( {x,y} \right)}},{{define}\left\{ \begin{matrix} {\varphi = {\arctan\mspace{14mu} 2\left( {x,y} \right)}} \\ {r = \sqrt{\left( {x^{2} + y^{2}} \right)}} \end{matrix} \right.}} & (16) \\ {{{For}\mspace{14mu}{\Gamma_{\beta}^{+}\left( {x,y} \right)}},{\beta = \varphi}} & (17) \\ {{{For}\mspace{14mu}{\Gamma_{\beta}^{+}\left( {x,y} \right)}},\left\{ {\begin{matrix} {{\cos\left( {\alpha - \varphi} \right)} = {\frac{1}{2}\left( {r - 1} \right)}} \\ {{\sin\left( {\alpha - \varphi} \right)} = {\frac{1}{2}\sqrt{\left( {3 - r} \right)\left( {1 + r} \right)}}} \end{matrix}{and}} \right.} & (18) \\ {{{For}\mspace{14mu}{\Gamma_{\beta}^{+}\left( {x,y} \right)}},\left\{ {\begin{matrix} {{\cos\left( {\gamma - \varphi} \right)} = {\frac{1}{2}\left( {r - 1} \right)}} \\ {{\sin\left( {\gamma - \varphi} \right)} = {{- \frac{1}{2}}\sqrt{\left( {3 - r} \right)\left( {1 + r} \right)}}} \end{matrix}.} \right.} & (19) \end{matrix}$

From the above equation, it can be determined that Γ_(α) ⁺ has a single singularity at the origin (x, y)=(0,0). In deriving a control for CMGs it is desirable to have the singularity outside of the origin (x,y)=(0,0). In the following fixed control K has a singularity on the boundary of U₁ at (x, y)=(0,−1) and is defined for r=1.

For K(x, y), define r_(α)=√{square root over ((x−cos α)²+(y−sin α)²)}{square root over ((x−cos α)²+(y−sin α)²)}, then:

$\begin{matrix} {{{For}\mspace{14mu}{K\left( {x,y} \right)}},\left\{ \begin{matrix} {{\cos\;\alpha} = \frac{{- 2}\left( {1 + x} \right)y}{\left( {1 + x} \right)^{2} + y^{2}}} \\ {{\sin\;\alpha} = \frac{\left( {1 + x} \right)^{2} - y^{2}}{\left( {1 + x} \right)^{2} + y^{2}}} \end{matrix} \right.} & (20) \\ {{{For}\mspace{14mu}{K\left( {x,y} \right)}},\left\{ {\begin{matrix} {{\cos\;\beta} = {{\frac{1}{2}\left( {x - {\cos\;\alpha}} \right)} - {\sqrt{\left( {\frac{1}{r_{\alpha}^{2}} - \frac{1}{4}} \right)}\left( {y - {\sin\;\alpha}} \right)}}} \\ {{\sin\;\beta} = {{\sqrt{\left( {\frac{1}{r_{\alpha}^{2}} - \frac{1}{4}} \right)}\left( {x - {\cos\;\alpha}} \right)} + {\frac{1}{2}\left( {y - {\sin\;\alpha}} \right)}}} \end{matrix}{and}} \right.} & (21) \\ {{{For}\mspace{14mu}{K\left( {x,y} \right)}},\left\{ {\begin{matrix} {{\cos\;\gamma} = {{\frac{1}{2}\left( {x - {\cos\;\alpha}} \right)} + {\sqrt{\left( {\frac{1}{r_{\alpha}^{2}} - \frac{1}{4}} \right)}\left( {y - {\sin\;\alpha}} \right)}}} \\ {{\sin\;\gamma} = {{{- \sqrt{\left( {\frac{1}{r_{\alpha}^{2}} - \frac{1}{4}} \right)}}\left( {x - {\cos\;\alpha}} \right)} + {\frac{1}{2}\left( {y - {\sin\;\alpha}} \right)}}} \end{matrix}.} \right.} & (22) \end{matrix}$

From these equations, for r=1,

$\alpha = {{\varphi + {\frac{\pi}{2}{and}\mspace{14mu}\beta}} = {\varphi.}}$ Thus Γ_(β) ⁺(x, y)=K(x, y) on the boundary of U₁.

Therefore, an exemplary combined fixed control Λ(x, y) that is defined over all of H has only one singularity at (x, y)=(0,−1):

$\begin{matrix} {{\Lambda\left( {x,y} \right)} = \left\{ {\begin{matrix} {K\left( {x,y} \right)} & {{{if}\mspace{14mu}\sqrt{x^{2} + y^{2}}} < 1} \\ {\Gamma_{\beta}^{+}\left( {x,y} \right)} & {{{if}\mspace{14mu}\sqrt{x^{2} + y^{2}}} \geq 1} \end{matrix}.} \right.} & (23) \end{matrix}$

Since a fixed control can be found that has only a singularity at (x, y)=(0, −1), a dynamic momentum controller can be designed that will avoid singularities as it follows a momentum path of fixed maximum velocity. In one exemplary embodiment, to derive a dynamic momentum controller, it is first noted that the gimbal space for three collinear CMGs is rotationally symmetric. If all three gimbal angles are rotated by the same angle, the momentum vector is also rotated by that same angle. In other terms, working with polar coordinates, if (r, φ)=h(α, β, γ), then (r, φ+ψ)=h(α+ψ, β+ψ, γ+ψ).

Thus, given a fixed control Λ (not necessarily the same A as previously discussed) with known singularities, the CMGs can be dynamically controlled by simply dynamically rotating the singularities away from the current momentum path. Thus, for a given fixed control {α, β, γ}={α_(Λ)(r, φ), β_(Λ)(r, φ), γ_(Λ)(r, φ)} with a singularity at ({tilde over (r)}, {tilde over (φ)}) where {tilde over (r)}≠0: (r, φ)=h(α_(Λ)(r, φ), β_(Λ)(r, φ), γ_(Λ)(r, φ)).  (24)

A dynamic winding angle ψ can be defined as (r, φ)=h(ψ+α_(Λ)(r, φ−ψ), ψ+β_(Λ)(r, φ−ψ), ψ+γ_(Λ)(r, φ−ψ)).  (25) By rotating the gimbals by the winding angle the singularity can be relocated to ({tilde over (r)}, {tilde over (φ)}+ψ). The size of the winding angle is chosen to provide avoidance of the singularity while minimizing the amount of extra CMG movement.

FIG. 3 illustrates an exemplary embodiment of rotation of a singularity. In this example, the momentum space 300 includes a singular point 302 not at the origin. A momentum path 306 is located within the momentum space 300. In FIG. 3, a boundary 304 is placed around a singular point 302, and whenever a momentum path 306 impinges the boundary, the winding angle is changed to rotate the singularity away from the momentum path 306. Note in FIG. 3, the singular point 302 is originally located at point A. When the momentum path 306 impinges the boundary 304 at point C, the singular point 302 is rotated to point B. This will occur each time the momentum path 306 impinges the boundary 304.

The dynamic control resulting from the boundary 304 as shown will be continuous in the gimbal angles, but will have a discontinuous velocity (when the momentum path “hits” the boundary). However, the velocities will be bounded. The derivatives can be made smooth by passing the controls through a simple filter, such as a first-order lag.

There is also a potential ambiguity as to which direction the winding angle should choose if the momentum path 306 is directed directly against one of the vertices of the boundary 304. Any basic choice combined with a hysterisis in the direction chosen will eliminate that issue.

In another exemplary embodiment, given a fixed control with isolated singularities that do not occur at the origin, a dynamic momentum controller can be determined that will avoid singularities as long as the dynamic momentum controller follows momentum paths of fixed maximum velocity.

As before, a fixed control Λ (again, not necessarily the same Λ as discussed previously) with known singularities ({tilde over (r)}, {tilde over (φ)}) where {tilde over (r)}≠0 (no singularity at the origin). The winding angle ψ defines a set of fixed controls by: Λ_(ψ)(r, φ)=Λ(r, φ−ψ)+ψ.  (26) which relocates the singularities to ({tilde over (r)}, {tilde over (φ)}+ψ(t)).

In this approach, a safety ray consisting of an angle φ such that there are no singular points along that angle ∀{tilde over (φ)}, {tilde over (φ)}≠ φ, and all points along that angle in the momentum space, R={{r, φ}: 0≦r≦3}. The momentum space can be divided to form into those regions clockwise from R, H⁻={{r, φ}: φ−π<φ≦ φ} and those counterclockwise from R, H⁺={{r, φ}: φ<φ≦ φ+π}. A feedback control can be derived that rotates the fixed control, either clockwise or counterclockwise, back to R. As long as the control in the vicinity of a singularity rotates faster towards R than the momentum path can move towards a singularity, the resulting control will be singularity free.

As a specific example, let δ>0 be a distance such that there is no singularity within δ of R. Let M be the maximum speed at which to rotate the winding angle (in general, this will be a function of the gimbal angles and fixed control). Then the controller can be defined as the distance arc squared so that the controller will have a continuous derivative:

$\begin{matrix} {\overset{.}{\psi} = \left\{ {\begin{matrix} {\min\left( {M,{\frac{M}{\delta^{2}}{{dist}^{2}\left( {\left( {x,y} \right),\overset{\_}{R}} \right)}}} \right)} & {{{if}\left( {x,y} \right)} \in H^{-}} \\ {- {\min\left( {M,{\frac{M}{\delta^{2}}{{dist}^{2}\left( {\left( {x,y} \right),\overset{\_}{R}} \right)}}} \right)}} & {{{if}\left( {x,y} \right)} \in H^{+}} \end{matrix}.} \right.} & (27) \end{matrix}$

FIG. 4 illustrates an exemplary momentum space 400 which includes a singularity 402 on the inner circle 404 of r=1. A safety ray 406 points in a direction away from the singularity 402. A momentum path 408 starts at the origin O and moves along the momentum path 408 to provide the momentum required to assist in spacecraft movement. As the momentum path 408 moves, the safety ray 406 is rotated to keep the momentum path 408 aligned with the safety ray 406. As the safety ray 406 rotates, so does the singularity 402. Note that the safety ray 406 is originally at point A. As the momentum path 408 moves, the safety ray 406 rotates. For the momentum path 408 shown in FIG. 4, the safety ray 406 moves to point B. While the safety ray 406 is moving from point A to point B, the singularity 402 moves from point C to point D.

FIG. 5 illustrates a method 500 for controlling a spacecraft in accordance with the teachings of the present invention. First, in step 502, a maneuvering command to rotate spacecraft orientation is received. In one exemplary embodiment, the maneuvering command is sent from a ground control station to the attitude control system 102 of the spacecraft. Alternatively, the maneuvering command may be generated by the spacecraft based on a preplanned movement schedule.

After the maneuvering command is received, the momentum required for each set of CMGs is determined in step 504. In one embodiment, the needed torque can first be determined and the torque can then be integrated to determine the momentum required for each set of CMGs. These calculations can be done at the attitude control system 102.

In step 506, a dynamic momentum controller is used to provide a singularity free momentum path. The dynamic momentum controller uses a fixed control that includes a single singularity that is not located at the origin. As the momentum moves along the momentum path, the singularity is rotated away from the momentum path.

Once the momentum path is determined, the momentum actuator control processor 104 can compute the proper gimbal movements in step 508. In step 510, the gimbals for each of the three collinear CMGs are then moved to provide the proper momentum.

The exemplary embodiment or embodiments described herein are not intended to limit the scope, applicability, or configuration of the invention in any way. Rather, the foregoing detailed description will provide those skilled in the art with a convenient road map for implementing the described embodiment or embodiments. It should be understood that various changes can be made in the function and arrangement of elements without departing from the scope of the invention as set forth in the appended claims and the legal equivalents thereof. 

1. A control system of a spacecraft for controlling a set of collinear control moment gyroscopes CMGs, the control system comprising: an attitude control system operable to: receive a command to adjust an orientation of the spacecraft; determine a momentum needed from the set of collinear control moment gyroscopes (CMGs) to adjust the spacecraft; utilize a dynamic control that determines a momentum path and avoids singularities by rotating the singularities out of the momentum path; determine a safety ray that is initially at a fixed angle and all points along that angle in the momentum space is free of singularities; and rotate the safety ray to correspond to the momentum path, the singularity rotating away from the momentum path as the safety ray rotates; and a momentum actuator control processor coupled to the attitude control system, the momentum actuator control processor operable to calculate a required gimbal movement for each of the CMGs in the set of collinear CMGs from the momentum path.
 2. The system of claim 1 wherein each of the CMGs are configured to receive the required gimbal movement from the momentum actuator to change the spacecraft orientation.
 3. The system of claim 1 wherein the attitude control system is further operable to rotate the singularity when the momentum path impinges a predetermined boundary surrounding the singularity.
 4. The system of claim 1 wherein the attitude control system is further operable to rotate the singularity away from the momentum path as a function of time.
 5. The system of claim 1 wherein the attitude control system is further operable to use a fixed control to determine a momentum path with a single singularity not at the origin.
 6. A control system of a spacecraft for controlling a set of collinear control moment gyroscopes CMGs, the control system comprising: an attitude control system operable to: receive a command to adjust an orientation of the spacecraft; determine a momentum needed from the set of collinear control moment gyroscopes (CMGs) to adjust the spacecraft; utilize a dynamic control that determines a momentum path and avoids singularities by rotating the singularities out of the momentum path; and utilize a fixed control to determine the momentum path with a single singularity not at the origin; and a momentum actuator control processor coupled to the attitude control system, the momentum actuator control processor operable to calculate a required gimbal movement for each of the CMGs in the set of collinear CMGs from the momentum path.
 7. The system of claim 6 wherein each of the CMGs are configured to receive the required gimbal movement from the momentum actuator to change the spacecraft orientation.
 8. The system of claim 6 wherein the attitude control system is further operable to rotate the singularity when the momentum path impinges a predetermined boundary surrounding the singularity.
 9. The system of claim 6 wherein the attitude control system is further operable to rotate the singularity away from the momentum path as a function of time.
 10. The system of claim 6 wherein the attitude control system is further operable to: determine a safety ray that is initially at a fixed angle and all points along that angle in the momentum space is free of singularities; and rotate the safety ray to correspond to the momentum path, the singularity rotating away from the momentum path as the safety ray rotates. 